Skip to content

Release StickS3 streaming and power improvements#2

Draft
blackdm666 wants to merge 2 commits into
GaryGaryyy:mainfrom
blackdm666:codex/sticks3-power-optimization
Draft

Release StickS3 streaming and power improvements#2
blackdm666 wants to merge 2 commits into
GaryGaryyy:mainfrom
blackdm666:codex/sticks3-power-optimization

Conversation

@blackdm666

Copy link
Copy Markdown

What

  • Adds low-latency StickS3/FunASR streaming and stable segment/tail correction.
  • Adds the Windows input-relay protocol for local and RDP-focused text input.
  • Adds server-side Sub2-Usage snapshots for Codex/Claude quota and account names.
  • Restores front-button Send/Enter plus task completion, approval, and error sounds.
  • Adds BMI270 pickup/flip display behavior and true PMIC-aware idle shutdown.
  • Adds Unraid deployment assets, Windows setup helpers, release notes, and regression tests.

Why

The original record-then-upload path made long voice input feel slow and could leave the UI stuck in the listening state. Provisional/final transcript replacement could also delete or duplicate already-entered text. The original power path left peripheral LDO holds enabled, so a dark screen could still drain the battery. Quota and task state also depended too heavily on a local desktop bridge.

Impact

StickS3 now streams audio while the button is held, exits listening promptly on release, and only corrects the active tail. A server-hosted Bridge can relay results to Windows, fetch normalized quota snapshots without exposing credentials to firmware, and forward task alerts. Idle battery operation now shuts down peripheral rails before PMIC power-off, with deep sleep as a fallback.

The companion Windows GUI is maintained separately; this PR contains its Bridge-side protocol and tests.

Checks

  • PYTHONPATH=bridge/src python -m pytest -q tests: 90 passed.
  • PlatformIO ESP-IDF build from the exact staged tree: success.
  • Firmware size: RAM 26.6%, application Flash 65.8%.
  • Staged secret scan: no real API tokens, Wi-Fi passwords, or ASR keys.
  • Hardware smoke-tested on M5Stack StickS3 for streaming, release handling, quota/account display, Enter, alert sounds, IMU wake, and PMIC shutdown.

Detailed release and rollback record: docs/releases/0.1.6.md.

@GaryGaryyy

GaryGaryyy commented Jul 16, 2026

Copy link
Copy Markdown
Owner

感谢提交。目前这版先不过,请修改以下问题:

  1. 新增了 websockets 依赖,但 CI、Windows/macOS 安装和启动流程都没有安装它;干净环境会报 ModuleNotFoundError。请在 CI 和安装流程中统一安装项目依赖。
  2. macOS + StickS3 + Local FunASR 下,流式识别会启动,但实时文字编辑只支持 Windows,最终无法输入且不会正确回退。请补充 macOS 编辑支持,或在不支持的平台禁用流式并回退到整段上传。
  3. Windows 切回原目标窗口后没有校验是否成功,失败时仍会发送退格和文字,可能输入到错误窗口。请校验 SetForegroundWindow 结果和当前前台窗口,不一致就中止。
  4. StickS3 界面较小,不建议显示账户名,会挤压布局并影响美观;请保留服务商、状态和额度显示,移除账户名展示。

修改后请在干净环境重新跑 CI,并补充 Windows/macOS 对应路径的测试。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants